package com.gpframework.module.order.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.gpframework.module.order.domain.GpFlowConfig;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import com.gpframework.common.annotation.Excel;
import java.util.Date;
import java.math.BigDecimal;
import java.util.List;

/**
 * @ClassName GpOrderFlowVo
 * @Author gpframework
 * @Date 2023-06-16
 * @Version 1.0.0
 * @Description 员工订单流转详情Vo对象
 */
@Data
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@Accessors(chain = true)
public class GpOrderFlowVo {
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    @ApiModelProperty("${column.columnComment}")
    private Long id;

    /** 品牌id */
    @Excel(name = "品牌id")
    @ApiModelProperty("品牌id")
    private String brandId;

    /** 品牌名称 */
    @Excel(name = "品牌名称")
    @ApiModelProperty("品牌名称")
    private String brandName;

    /** 部门ids */
    @ApiModelProperty("部门ids")
    private String deptIds;

    /** 订单ID */
    @Excel(name = "订单ID")
    @ApiModelProperty("订单ID")
    private Long orderId;

    /** 员工ID */
    @Excel(name = "员工ID")
    @ApiModelProperty("员工ID")
    private Long userId;

    /** 流转节点id */
    @Excel(name = "流转节点id")
    @ApiModelProperty("流转节点id")
    private Long configId;

    /** 流转节点名称 */
    @Excel(name = "流转节点名称")
    @ApiModelProperty("流转节点名称")
    private String configName;

    /** 去向类型 */
    @ApiModelProperty("去向类型")
    private String destinationType;

    /** 去向车次（物流使用） */
    @ApiModelProperty("去向车次（物流使用）")
    private String destinationNo;

    /** 流入时间 */
    @Excel(name = "流入时间", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("流入时间")
    private Date inletTime;

    /** 处理时间 */
    @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("处理时间")
    private Date processingTime;

    /** 处理时长 */
    @Excel(name = "处理时长")
    @ApiModelProperty("处理时长")
    private Long processingDuration;

    /** 超期时长 */
    @Excel(name = "超期时长")
    @ApiModelProperty("超期时长")
    private Long overdueDuration;

    /** 处理意见 */
    @Excel(name = "处理意见")
    @ApiModelProperty("处理意见")
    private String processingOpinion;

    /** 流程状态：0细码正常/1细码异常；0未拍物流单/1已拍物流单；0未提/1已提 */
    @ApiModelProperty("流程状态：0细码正常/1细码异常；0未拍物流单/1已拍物流单；0未提/1已提")
    private String status;

    /** 附件 */
    @ApiModelProperty("附件")
    private String annex;

    /** 附件 */
    @ApiModelProperty("附件")
    private List<String> annexList;

    /** 附件上传时间 */
    @ApiModelProperty("附件上传时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date uploadTime;

    /** 备注 */
    @Excel(name = "备注")
    @ApiModelProperty("备注")
    private String remarks;

    /** 创建者 */
    @ApiModelProperty("创建者")
    private String createBy;

    /** 订单录入人 */
    @ApiModelProperty("订单录入人")
    private String orderCreateBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    private Date createTime;

    /** 更新者 */
    @ApiModelProperty("更新者")
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("更新时间")
    private Date updateTime;

    /** 跟进人昵称 */
    @ApiModelProperty("跟进人昵称")
    private String nickName;

    /** 跟进人头像 */
    @ApiModelProperty("跟进人头像")
    private String avatar;

    /** 跟进人编号 */
    @ApiModelProperty("跟进人编号")
    private String userNo;

    /** 档口 */
    @Excel(name = "档口")
    @ApiModelProperty("档口")
    private String organiseUnit;

    /** 订单编号 */
    @Excel(name = "订单编号")
    @ApiModelProperty("订单编号")
    private String formCode;

    /** 客户名称 */
    @Excel(name = "客户名称")
    @ApiModelProperty("客户名称")
    private String clientName;

    /** 联系人及电话 */
    @Excel(name = "联系人及电话")
    @ApiModelProperty("联系人及电话")
    private String linkManAndPhone;

    /** 地址 */
    @Excel(name = "地址")
    @ApiModelProperty("地址")
    private String address;

    /** 订单状态 */
    @Excel(name = "订单状态")
    @ApiModelProperty("订单状态")
    private String orderStatus;

    /** 工作量 */
    @Excel(name = "工作量")
    @ApiModelProperty("工作量")
    private BigDecimal workload;

    /** 订单备注 */
    @Excel(name = "订单备注")
    @ApiModelProperty("订单备注")
    private String orderRemark;

    /** 流转节点配置 */
    @Excel(name = "流转节点配置")
    @ApiModelProperty("流转节点配置")
    private GpFlowConfig flowConfig;

}
